home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 2011-02-03 | 8.9 KB | 207 lines |
- 10 ' $linesize: 132 $title: 'CALRSTAT: RBBS CPC12.XX Statistics program' $subtitle: 'Version 1.4'
- 20 '************************************************************************
- 30 '* CALRSTAT: A Program to Pull Statistics from the RBBS-PC CALLERS File *
- 40 '* Version 1.4 by Michael L. Brown (NICBUL bbs) *
- 50 '* (c) 1984 by Read Gilgen This program may be copied and used free *
- 60 '* of charge provided that this notice is not changed or bypassed. *
- 70 '************************************************************************
- 80 '
- 100 KEY OFF:CLS:LOCATE 13,36:PRINT "CALRSTAT"
- 110 LOCATE 15,20:PRINT "Statistics for the RBBS-PC CALLERS File"
- 120 LOCATE 16,24:PRINT "Version 1.4 by Michael L. Brown
- 130 LOCATE 17,29:PRINT "(c)1984 by Read Gilgen"
- 140 FOR PAUSE=1 TO 5000:NEXT
- 150 CLS:PRINT "This program will calculate statistics from the RBBS-PC
- 160 PRINT "CALLERS file. Make sure that file is on the default"
- 170 PRINT "drive and then press any key to continue . . ."
- 180 ANS$=INPUT$(1)
- 190 PRINT:PRINT "Do you want to see the records as they are read?"
- 200 ANS$=INPUT$(1):IF ANS$="Y" OR ANS$="y" THEN SEE=-1 ELSE SEE=0
- 210 OPTION BASE 1:DIM DF(1000),DF$(1000),UP$(500),UP(500),SV(100),SV$(100):FIRST=-1
- 220 CLS:LOCATE 24,1:OPEN "R",#1,"callers",64:FIELD #1, 64 AS INFO$
- 230 UDX=LOF(1)/64:IF NOT SEE THEN CLS:LOCATE 20,10,0:PRINT "Reading record number"
- 240 FOR LOOP=UDX TO 1 STEP -1
- 250 GET #1,LOOP:IF NOT SEE THEN LOCATE 20,32,0:PRINT LOOP
- 260 IF MIN<10 THEN MIN$="0"+RIGHT$(STR$(MIN),1) ELSE MIN$=RIGHT$(STR$(MIN),2)
- 270 IF SEE THEN GOSUB 790
- 280 GOSUB 400
- 290 NEXT
- 300 IF SEE THEN GOSUB 790
- 310 GOTO 3000
- 400 IF LONGINFO$>"" THEN LONGINFO$=LONGINFO$+INFO$:GOTO 480
- 410 X=INSTR(INFO$,"on at")
- 420 IF X>0 AND FIRST THEN LATESTDATE$=MID$(INFO$,(X+6),8):FIRST=0
- 430 IF X>0 THEN FIRSTDATE$=MID$(INFO$,(X+6),8)
- 440 IF X>0 THEN LONGINFO$=INFO$:RETURN
- 450 IF SEE THEN PRINT INFO$;
- 460 GOSUB 900 'check for special info
- 470 RETURN
- 480 IF SEE THEN PRINT LONGINFO$;
- 485 IF INSTR(LONGINFO$,"2400") THEN BAUD24=BAUD24+1
- 490 IF INSTR(LONGINFO$,"1200") THEN BAUD12=BAUD12+1
- 500 IF INSTR(LONGINFO$,"300") THEN BAUD3=BAUD3+1
- 510 IF INSTR(LONGINFO$,"==Sw") THEN BAUD450=BAUD450+1
- 520 IF INSTR(LONGINFO$,"SYSOP") THEN SYSOP=SYSOP+1
- 530 IF INSTR(LONGINFO$,"DENIED") THEN DENIED=DENIED+1
- 590 'Calculate times
- 600 SEC=SEC+VAL(RIGHT$(LONGINFO$,2))
- 610 IF SEC>59 THEN MIN=MIN+1:SEC=SEC-60
- 620 MIN=MIN+VAL(MID$(LONGINFO$,124,2))
- 630 IF MIN>59 THEN HOUR=HOUR+1:MIN=MIN-60
- 640 HOUR=HOUR+VAL(MID$(LONGINFO$,121,1))
- 650 X=INSTR(INFO$,"N,8,1")
- 660 IF X>0 THEN NOPAR=NOPAR+1:GOTO 690
- 670 X=INSTR(INFO$,"NO PARITY")
- 680 IF X>0 THEN NOPAR=NOPAR+1 ELSE EVENPAR=EVENPAR+1
- 690 LONGINFO$=""
- 700 RETURN
- 790 ' Print running totals
- 800 IF HOUR<10 THEN HOUR$="00"+RIGHT$(STR$(HOUR),1) ELSE IF HOUR<100 THEN HOUR$="0"+RIGHT$(STR$(HOUR),2)
- 810 IF MIN<10 THEN MIN$="0"+RIGHT$(STR$(MIN),1) ELSE MIN$=RIGHT$(STR$(MIN),2)
- 820 IF SEC<10 THEN SEC$="0"+RIGHT$(STR$(SEC),1) ELSE SEC$=RIGHT$(STR$(SEC),2)
- 830 LOCATE 25,1:PRINT "TIME: ";HOUR$;":";MIN$;":";SEC$;
- 840 LOCATE 25,17:PRINT "1200:";BAUD12;" 300:";BAUD3;" 450:";BAUD450;" DL:";DOWNLOADS;" DIF:";DOWNTOT;" ABT:";ABT;
- 850 RETURN
- 890 'store special information
- 900 IF INSTR(INFO$,"Abort") THEN ABT=ABT+1:RETURN
- 910 IF INSTR(INFO$,"using x") THEN XMODEM=XMODEM+1
- 920 IF INSTR(INFO$,"using X") THEN XMODEM=XMODEM+1
- 930 IF INSTR(INFO$,"using a") THEN ASCII=ASCII+1
- 940 IF INSTR(INFO$,"using A") THEN ASCII=ASCII+1
- 950 X=INSTR(INFO$,"Down"):IF X THEN DOWNLOADS=DOWNLOADS+1:DOWNFILE$=MID$(INFO$,8,X-9):GOTO 2000
- 960 X=INSTR(INFO$,">>"):IF X THEN UPLOADS=UPLOADS+1:UPFILE$=MID$(INFO$,6,X-7):GOTO 2200
- 970 IF INSTR(INFO$,"SV!") THEN SV=SV+1:SVFILE$=MID$(INFO$,10,10):GOTO 2400
- 980 IF INSTR(INFO$,"paged") THEN PG=PG+1:RETURN
- 990 IF INSTR(INFO$,"==Sw") THEN BAUD450=BAUD450+1:RETURN
- 1000 IF INSTR(INFO$,"450") THEN BAUD450=BAUD450+1:RETURN
- 1010 IF INSTR(INFO$,"Lockout") THEN LOCKOUT=LOCKOUT+1:RETURN
- 1020 IF INSTR(INFO$,"Password Attempt Failed") THEN ATTEMPT=ATTEMPT+1:RETURN
- 1030 RETURN
- 2000 WHILE NOT MATCH
- 2010 FINDIT=FINDIT+1
- 2020 IF DOWNFILE$=DF$(FINDIT) THEN DF(FINDIT)=DF(FINDIT)+1:MATCH=-1
- 2030 IF DF$(FINDIT)="" THEN 2060
- 2040 WEND
- 2050 GOTO 2110
- 2060 FOR FIND=1 TO FINDIT-1:IF DOWNFILE$<DF$(FIND) THEN 2070 ELSE NEXT:GOTO 2090
- 2070 FOR MOVE=FINDIT TO FIND+1 STEP -1:DF$(MOVE)=DF$(MOVE-1):DF(MOVE)=DF(MOVE-1):NEXT
- 2080 DF$(FIND)=DOWNFILE$:DF(FIND)=1:GOTO 2100
- 2090 DF$(FINDIT)=DOWNFILE$:DF(FINDIT)=1
- 2100 IF FINDIT>DOWNTOT THEN DOWNTOT=FINDIT
- 2110 MATCH=0:FINDIT=0:RETURN
- 2200 WHILE NOT MATCH
- 2210 FINDIT=FINDIT+1
- 2220 IF UPFILE$=UP$(FINDIT) THEN UP(FINDIT)=UP(FINDIT)+1:MATCH=-1
- 2230 IF UP$(FINDIT)="" THEN 2260
- 2240 WEND
- 2250 GOTO 2310
- 2260 FOR FIND=1 TO FINDIT-1:IF UPFILE$<UP$(FIND) THEN 2270 ELSE NEXT:GOTO 2290
- 2270 FOR MOVE=FINDIT TO FIND+1 STEP -1:UP$(MOVE)=UP$(MOVE-1):UP(MOVE)=UP(MOVE-1):NEXT
- 2280 UP$(FIND)=UPFILE$:UP(FIND)=1:GOTO 2300
- 2290 UP$(FINDIT)=UPFILE$:UP(FINDIT)=1
- 2300 IF FINDIT>UPTOT THEN UPTOT=FINDIT
- 2310 MATCH=0:FINDIT=0:RETURN
- 2400 WHILE NOT MATCH
- 2410 FINDIT=FINDIT+1
- 2420 IF SVFILE$=SV$(FINDIT) THEN SV(FINDIT)=SV(FINDIT)+1:MATCH=-1
- 2430 IF SV$(FINDIT)="" THEN 2460
- 2440 WEND
- 2450 GOTO 2510
- 2460 FOR FIND=1 TO FINDIT-1:IF SVFILE$<SV$(FIND) THEN 2470 ELSE NEXT:GOTO 2490
- 2470 FOR MOVE=FINDIT TO FIND+1 STEP -1:SV$(MOVE)=SV$(MOVE-1):SV(MOVE)=SV(MOVE-1):NEXT
- 2480 SV$(FIND)=SVFILE$:SV(FIND)=1:GOTO 2500
- 2490 SV$(FINDIT)=SVFILE$:SV(FINDIT)=1
- 2500 IF FINDIT>SVTOT THEN SVTOT=FINDIT
- 2510 MATCH=0:FINDIT=0:RETURN
- 2990 'Print totals
- 3000 CLS:PRINT "The following activity is reported for the period from "FIRSTDATE$;" to ";LATESTDATE$:PRINT
- 3010 PRINT "Total on-line time was";HOUR;"hours,";MIN;"minutes,";SEC;"seconds."
- 3015 PRINT "2400 baud calls =";BAUD24
- 3020 PRINT "1200 baud calls =";BAUD12
- 3030 PRINT " 300 baud calls =";BAUD3
- 3040 PRINT " 450 baud calls =";BAUD450
- 3050 PRINT "Calls at No Parity, 8 bits =";NOPAR
- 3060 PRINT "Calls at Even Parity, 7 bits =";EVENPAR
- 3070 PRINT:PRINT "Total SYSOP remote logons =";SYSOP
- 3080 PRINT "Total operator pages =";PG
- 3090 PRINT "Total logons denied =";DENIED
- 3100 PRINT "Total lockouts =";LOCKOUT
- 3110 PRINT "Total password attempt fails =";ATTEMPT
- 3120 PRINT:PRINT "Different Download files =";DOWNTOT
- 3130 PRINT "Total Download files =";DOWNLOADS
- 3140 PRINT "Total Upload files =";UPLOADS
- 3143 PRINT "Total Transfers using XMODEM =";XMODEM
- 3146 PRINT "Total Transfers using ASCII =";ASCII
- 3150 PRINT "Total aborted transfers =";ABT
- 3160 PRINT "Total security violations =";SV
- 4000 PRINT:PRINT "Do you want a hard copy of the totals? (Y/N)"
- 4010 ANS$=INPUT$(1):IF ANS$<>"Y" AND ANS$<>"y" THEN 10000
- 4020 PRINT "Make sure printer is on and ready. Press any key to continue. . ."
- 4030 ANS$=INPUT$(1)
- 4040 FOR LOOP=1 TO 5:LPRINT:NEXT:LPRINT "The following activity is reported for the period from "FIRSTDATE$" to "LATESTDATE$:LPRINT
- 4050 LPRINT SPACE$(5);"Total on-line time was";HOUR;"hours,";MIN;"minutes,";SEC;"seconds."
- 4055 LPRINT:LPRINT SPACE$(5);"2400 baud calls =";BAUD24
- 4060 LPRINT:LPRINT SPACE$(5);"1200 baud calls =";BAUD12
- 4070 LPRINT SPACE$(5);" 300 baud calls =";BAUD3
- 4080 LPRINT SPACE$(5);" 450 baud calls =";BAUD450
- 4090 LPRINT SPACE$(5);"Calls at No Parity, 8 bits =";NOPAR
- 4100 LPRINT SPACE$(5);"Calls at Even Parity, 7 bits =";EVENPAR
- 4110 LPRINT:LPRINT SPACE$(5);"Total SYSOP remote logons =";SYSOP
- 4120 LPRINT SPACE$(5);"Total operator pages =";PG
- 4130 LPRINT SPACE$(5);"Total logons denied =";DENIED
- 4140 LPRINT SPACE$(5);"Total lockouts =";LOCKOUT
- 4150 LPRINT SPACE$(5);"Total password attempt fails =";ATTEMPT
- 4160 LPRINT:LPRINT SPACE$(5);"Different Download files =";DOWNTOT
- 4170 LPRINT SPACE$(5);"Total Download files =";DOWNLOADS
- 4180 LPRINT SPACE$(5);"Total Upload files =";UPLOADS
- 4183 LPRINT SPACE$(5);"Total Tranfers using XMODEM =";XMODEM
- 4186 LPRINT SPACE$(5);"Total Tranfers using ASCII =";ASCII
- 4190 LPRINT SPACE$(5);"Total aborted transfers =";ABT
- 4200 LPRINT SPACE$(5);"Total security violations =";SV
- 4210 LPRINT CHR$(12);
- 5000 PRINT:PRINT "Do you wish to print the download files information? (Y/N)"
- 5010 ANS$=INPUT$(1):IF ANS$<>"Y" AND ANS$<>"y" THEN GOTO 6000
- 5020 PRINT:PRINT "Download files were:":PRINT
- 5030 FOR LOOP=1 TO 5:LPRINT:NEXT:LPRINT "The following activity is reported for the period from "FIRSTDATE$" to "LATESTDATE$:LPRINT
- 5040 LPRINT SPACE$(5);"Download files were:":LPRINT
- 5050 FOR LO=0 TO 50:FOR LI=1 TO 50:LOOP=LO*50+LI
- 5060 IF DF$(LOOP)="" THEN GOTO 5110
- 5070 T$=STR$(DF(LOOP)):PRINT DF$(LOOP);TAB(20)SPACE$(5-LEN(T$))T$" times."
- 5080 LPRINT SPACE$(5)DF$(LOOP)TAB(20)SPACE$(5-LEN(T$))T$" times."
- 5090 TOTAL=TOTAL+DF(LOOP)
- 5100 NEXT:LPRINT CHR$(12);:FOR L=1 TO 5:LPRINT:NEXT L,LO
- 5110 PRINT:PRINT "Total downloaded:";TOTAL
- 5120 LPRINT:LPRINT:LPRINT SPACE$(5);"Total downloaded:";TOTAL:TOTAL=0
- 5130 LPRINT CHR$(12);
- 6000 PRINT:PRINT "Do you wish to print the upload files information? (Y/N)"
- 6010 ANS$=INPUT$(1):IF ANS$<>"Y" AND ANS$<>"y" THEN GOTO 7000
- 6020 PRINT:PRINT "Upload files were:":PRINT
- 6030 FOR LOOP=1 TO 5:LPRINT:NEXT:LPRINT "The following activity is reported for the period from "FIRSTDATE$" to "LATESTDATE$:LPRINT
- 6040 LPRINT SPACE$(5);"Upload files were:":LPRINT
- 6050 FOR LO=0 TO 50:FOR LI=1 TO 50:LOOP=LO*50+LI
- 6060 IF UP$(LOOP)="" THEN GOTO 6110
- 6070 T$=STR$(UP(LOOP)):PRINT UP$(LOOP);TAB(20)SPACE$(5-LEN(T$))T$" times."
- 6080 LPRINT SPACE$(5)UP$(LOOP)TAB(20)SPACE$(5-LEN(T$))T$" times."
- 6090 TOTAL=TOTAL+UP(LOOP)
- 6100 NEXT:LPRINT CHR$(12);:FOR L=1 TO 5:LPRINT:NEXT L,LO
- 6110 PRINT:PRINT "Total uploaded:";TOTAL
- 6120 LPRINT:LPRINT:LPRINT SPACE$(5);"Total uploaded:";TOTAL:TOTAL=0
- 6130 LPRINT CHR$(12);
- 7000 PRINT:PRINT "Do you wish to print the security violation information? (Y/N)"
- 7010 ANS$=INPUT$(1):IF ANS$<>"Y" AND ANS$<>"y" THEN GOTO 10000
- 7020 PRINT:PRINT "Security violations were:":PRINT
- 7030 FOR LOOP=1 TO 5:LPRINT:NEXT:LPRINT "The following activity is reported for the period from "FIRSTDATE$" to "LATESTDATE$:LPRINT
- 7040 LPRINT SPACE$(5);"Security violations were:":LPRINT
- 7050 FOR LO=0 TO 50:FOR LI=1 TO 50:LOOP=LO*50+LI
- 7060 IF SV$(LOOP)="" THEN GOTO 7110
- 7070 T$=STR$(SV(LOOP)):PRINT SV$(LOOP)TAB(20)SPACE$(5-LEN(T$))T$" times."
- 7080 LPRINT SPACE$(5)SV$(LOOP)TAB(20)SPACE$(5-LEN(T$))T$" times."
- 7090 TOTAL=TOTAL+SV(LOOP)
- 7100 NEXT:LPRINT CHR$(12);:FOR L=1 TO 5:LPRINT:NEXT L,LO
- 7110 PRINT:PRINT "Total violations:";TOTAL
- 7120 LPRINT:LPRINT SPACE$(5);"Total violations:";TOTAL:TOTAL=0
- 7130 LPRINT CHR$(12);
- 10000 LOCATE 25,1:PRINT SPACE$(78);:END
- 10010 ' CALRSTAT (c) 1984 by Read Gilgen
- 10020 ' (c) 1985 by Michael L. Brown (enhancements)
-